#include<iostream>
using namespace std;
#include<algorithm>
#include<vector>
#include<functional>
#include<ctime>
/*
功能描述：
    洗牌 指定范围内的元素随机调整次序
函数原型：
    random_shuffle(iterator beg,iterator end);
    指定范围内的元素随机调整次序
    beg开始迭代器
    end结束迭代器
*/
void myPrint(int val)
{
    cout<<val<<" ";
}
void test01()
{
    srand((unsigned int)time(NULL));
    vector<int> v;
    for(int i=0;i<10;i++)
    {
        v.push_back(i);
    }
    //利用洗牌算法，打乱顺序
    random_shuffle(v.begin(),v.end());
    for_each(v.begin(),v.end(),myPrint);
    cout<<endl;
}
int main()
{
    test01();
}
/*
总结：random_shuffle洗牌算法比较实用，使用时记得加随机数种子
*/